
package ru.ifmo.mlarinsky.classificator.providers;

import java.util.List;
import ru.ifmo.mlarinsky.classificator.model.Instrument;
import ru.ifmo.mlarinsky.classificator.model.QuoteDate;
import ru.ifmo.mlarinsky.classificator.model.Vector;

public abstract class VectorProvider {
    protected final List<Instrument> instruments;
    protected final QuoteDate periodStart;
    protected final int periodLength;

    public VectorProvider(List<Instrument> instruments, QuoteDate periodStart, int periodLength) {
        this.instruments = instruments;
        this.periodStart = periodStart;
        this.periodLength = periodLength;
    }

    public String getLabel() {
        return periodStart.toString() + "_per_" + periodLength;
    }

    public List<Instrument> getInstruments() {
        return instruments;
    }

    public int getPeriodLength() {
        return periodLength;
    }

    public QuoteDate getPeriodStart() {
        return periodStart;
    }

    public abstract Vector getVector(Instrument instrument);
    public abstract List<Vector> getVectors();
    public abstract String[] getDimensions();
}
